package com.ruoyi.system.mapper;

import java.util.List;
import com.ruoyi.system.domain.Product;
import org.apache.ibatis.annotations.Param;

/**
 * 商品管理Mapper接口
 * 
 * @author gcl
 * @date 2021-05-01
 */
public interface ProductMapper 
{
    /**
     * 查询商品管理
     * 
     * @param id 商品管理ID
     * @return 商品管理
     */
    public Product selectProductById(String id);

    /**
     * 查询商品管理
     *
     * @param name 商品名称
     * @return 商品管理
     */
    public Product selectProductByName(String name);


    /**
     * 查询商品管理列表
     * 
     * @param product 商品管理
     * @return 商品管理集合
     */
    public List<Product> selectProductList(Product product);

    /**
     * 查询商品管理
     *
     * @param product 已经绑定过商家ID
     * @return 商品管理
     */
    public List<Product> selectProductListByUserId(Product product);


    /**
     * 新增商品管理
     * 
     * @param product 商品管理
     * @return 结果
     */
    public int insertProduct(Product product);

    /**
     * 修改商品管理
     * 
     * @param product 商品管理
     * @return 结果
     */
    public int updateProduct(Product product);

    /**
     * 删除商品管理
     * 
     * @param id 商品管理ID
     * @return 结果
     */
    public int deleteProductById(String id);

    /**
     * 批量删除商品管理
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteProductByIds(String[] ids);

    /**
     * 更新商品库存
     * @param id 商品ID
     * @param version 乐观锁版本号
     * @param value 超时订单数量
     * @return int 修改数
     */
    int changProductSale(@Param("id")String id,@Param("version") Long version,@Param("value")int value);
}
